package com.umeox.watch.moto.dataservice.interfaces;


import android.util.SparseArray;

import com.umeox.watch.moto.apiclient.model.AlbumDTO;
import com.umeox.watch.moto.apiclient.model.ChantsCountDTO;
import com.umeox.watch.moto.apiclient.model.SubmitTaskRecordDTO;

import java.util.List;

public interface IPullApiClient extends android.os.IInterface {

    String DESCRIPTOR = "com.umeox.watch.moto.dataservice.interfaces.IPullApiClient";

    int TRANSACTION_UPLOAD_FILE = android.os.IBinder.FIRST_CALL_TRANSACTION;
    int TRANSACTION_UPLOAD_STEP = android.os.IBinder.FIRST_CALL_TRANSACTION + 1;
    int TRANSACTION_UPLOAD_LOCATION = android.os.IBinder.FIRST_CALL_TRANSACTION + 2;
    int TRANSACTION_UPLOAD_SOS_LOCATION = android.os.IBinder.FIRST_CALL_TRANSACTION + 3;
    int TRANSACTION_UPLOAD_SOS = android.os.IBinder.FIRST_CALL_TRANSACTION + 4;
    int TRANSACTION_UPLOAD_SOS_FILE = android.os.IBinder.FIRST_CALL_TRANSACTION + 5;
    int TRANSACTION_UPLOAD_SOSR = android.os.IBinder.FIRST_CALL_TRANSACTION + 6;
    int TRANSACTION_REQUEST_SOS2 = android.os.IBinder.FIRST_CALL_TRANSACTION + 7;
    int TRANSACTION_UPLOAD_HEART_RATE = android.os.IBinder.FIRST_CALL_TRANSACTION + 8;
    int TRANSACTION_UPLOAD_ALUM_FILE = android.os.IBinder.FIRST_CALL_TRANSACTION + 9;
    int TRANSACTION_UPLOAD_ALB = android.os.IBinder.FIRST_CALL_TRANSACTION + 10;
    int TRANSACTION_UPLOAD_CHALLENGE_RECORD = android.os.IBinder.FIRST_CALL_TRANSACTION + 11;
    int TRANSACTION_UPLOAD_QURAN_CHALLENGE_RECORD = android.os.IBinder.FIRST_CALL_TRANSACTION + 12;
    int TRANSACTION_UPLOAD_CHANTS_COUNT = android.os.IBinder.FIRST_CALL_TRANSACTION + 13;
    int TRANSACTION_UPLOAD_FILE_BY_FILE_TYPE = android.os.IBinder.FIRST_CALL_TRANSACTION + 14;
    int TRANSACTION_SUBMIT_TASK_RECORD = android.os.IBinder.FIRST_CALL_TRANSACTION + 15;

    String uploadFile(String objectName, String filePath) throws android.os.RemoteException;

    String uploadSOSFile(String filePath) throws android.os.RemoteException;

    void uploadStep(int stepCount) throws android.os.RemoteException;

    boolean uploadSOSR(String sosEid, String fileUrl) throws android.os.RemoteException;

    boolean uploadLocation(int locReason, byte[] data) throws android.os.RemoteException;

    String uploadSosLocation(byte[] data) throws android.os.RemoteException;

    boolean uploadSos(long sosId, String fileId) throws android.os.RemoteException;

    void requestSOS2Location(String eid) throws android.os.RemoteException;

    void uploadHeartRate(String code, long startTime, long endTime, int avgValue, int minValue, int maxValue) throws android.os.RemoteException;

    String uploadAlumFile(String filePath) throws android.os.RemoteException;

    void uploadALB(SparseArray<AlbumDTO> fileUrls) throws android.os.RemoteException;

    boolean uploadChallengeRecord(int sportChallengeId,int sportType, String startTime, String endTime, int totalTime, int rewardValue) throws android.os.RemoteException;

    boolean uploadQuranChallengeRecord(int quranLearnId, int chapterIndex, String finishTime, int duration, int rewardValue) throws android.os.RemoteException;

    boolean uploadChants(List<ChantsCountDTO> chantsCountDTOList) throws android.os.RemoteException;

    String uploadFileByFileType(String filePath, int fileType) throws android.os.RemoteException;

    void submitTaskRecord(String requestId, List<SubmitTaskRecordDTO> list) throws android.os.RemoteException;

}
